package co.edu.uniandes.moviles.rollerjudge;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.ListView;
import co.edu.uniandes.moviles.rollerjudge.logica.Equipo;
import co.edu.uniandes.moviles.rollerjudge.logica.RollerJudge;
import co.edu.uniandes.moviles.rollerjudge.logica.Torneo;

public class SeleccionarEquiposActivity extends Activity{

	private ListView listTorneos;
	private Equipo[] nombresEquipos;
	private int selectedTorneo;
	private Torneo torneo;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_seleccionar_equipos);
		Bundle extras = getIntent().getExtras();
		
		selectedTorneo = (Integer) extras.get("torneo");
		
		torneo = RollerJudge.darInstancia().darTorneos().get(selectedTorneo);
		ArrayList<Equipo> equipos = RollerJudge.darInstancia().darEquipos();
		nombresEquipos = new Equipo[equipos.size()];
		int j = 0;
		for (Equipo equipo : equipos) {
			nombresEquipos[j] = equipo;				
			j++;
		}

		listTorneos = (ListView)findViewById(R.id.lstSelecioneEquipos);
		//TODOOOlistT

		listTorneos.setAdapter(new ArrayAdapter<Equipo>(this,
				android.R.layout.simple_list_item_multiple_choice, nombresEquipos));
		listTorneos.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
		j=0;
		for (Equipo equipo : equipos) {
			if(torneo.getEquiposParticipantes().contains(equipo))		{
				listTorneos.setItemChecked(j, true);
			}
			j++;
		}
		listTorneos.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				CheckedTextView item = (CheckedTextView) arg1;
				Equipo selected = nombresEquipos[arg2];
				if(item.isChecked()) {
					item.setChecked(false);
					if(!torneo.getEquiposParticipantes().contains(selected)){
						RollerJudge.darInstancia().retirarEquipoDeTorneo(torneo, selected);
					}
				}
				else {
					item.setChecked(true);
					RollerJudge.darInstancia().inscribirEquipoATorneo(torneo, selected);
				}
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@SuppressWarnings("deprecation")
	public void showDialog(String title, String message) {
		AlertDialog alertDialog = new AlertDialog.Builder(this).create();
		alertDialog.setTitle(title);
		alertDialog.setMessage(message);
		alertDialog.setButton("Aceptar", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(final DialogInterface dialog, final int which) {				
				finish();
			}
		});
		alertDialog.show();
	}


}
